package com.betaseries.betaseries.ui.episodes.detail; import android.animation.Animator; import android.animation.AnimatorListenerAdapter; import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.support.annotation.Nullable; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.RatingBar; import com.betaseries.betaseries.R; import com.betaseries.betaseries.model.Episode; import com.betaseries.betaseries.model.Show; import com.betaseries.betaseries.ui.AbstractFragment; import com.github.florent37.carpaccio.Carpaccio; import butterknife.Bind; import butterknife.ButterKnife; import butterknife.OnClick; import rx.android.schedulers.AndroidSchedulers; import rx.schedulers.Schedulers; /** * Created by florentchampigny on 11/08/15. */ public class EpisodeDetailFragment extends AbstractFragment { public static final String EPISODE = "EPISODE"; public static final String SHOW = "SHOW"; public static EpisodeDetailFragment newInstance(Show show, Episode episode) { EpisodeDetailFragment fragment = new EpisodeDetailFragment(); Bundle args = new Bundle(); args.putSerializable(SHOW, show); args.putSerializable(EPISODE, episode); fragment.setArguments(args); return fragment; } @Bind(R.id.carpaccio) Carpaccio carpaccio; Show show; Episode episode; @Bind(R.id.play) View play; @Bind(R.id.ratingUserStar) RatingBar ratingUserStar; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); show = (Show) getArguments().getSerializable(SHOW); episode = (Episode) getArguments().getSerializable(EPISODE); } @Nullable @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { return inflater.inflate(R.layout.fragment_episode_detail, container, false); } @Override public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); ButterKnife.bind(this, view); if (episode.getYoutubeId() == null) play.setVisibility(View.GONE); carpaccio.mapObject("show", show); carpaccio.mapObject("episode", episode); carpaccio.mapObject("user", userManager.getUser()); ratingUserStar.setOnRatingBarChangeListener((ratingBar, rating, fromUser) -> { if (fromUser) { betaSeriesAPI.episodeMarquerVu(episode.getId()) .subscribeOn(Schedulers.io()) .observeOn(Schedulers.io()) .onErrorReturn(null) .subscribe(vu -> { //unseenManager.markSeen(show, episode); betaSeriesAPI.episodeNoter(episode.getId(), episode.getNoteUser()) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .onErrorReturn(null) .subscribe(o2 -> ratingUserStar.animate().alpha(0).setDuration(600).setListener(new AnimatorListenerAdapter() { @Override public void onAnimationEnd(Animator animation) { ratingUserStar.setVisibility(View.GONE); } }).start() ); } ); } }); } @OnClick(R.id.bannerVideo) public void clickedOnVideo() { if (episode.getYoutubeId() != null) { startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.youtube.com/watch?v=" + episode.getYoutubeId()))); } } }